package backend

import (
	"github.com/GoAdminGroup/go-admin/modules/logger"

	"github.com/robfig/cron/v3"
)

func Init() {
	// 每天早上6点钟执行
	go func() {
		c := cron.New()
		// 添加一个定时任务，每天早上6点执行
		_, err := c.AddFunc("0 6 * * *", func() {
			Loop(nil)
		})
		if err != nil {
			logger.Errorf("Failed to add cron job Loop: %v\n", err)
			return
		}
		// 启动cron调度器
		c.Start()
	}()

	go func() {
		c := cron.New()
		// 添加一个定时任务，每天早上6点执行
		_, err := c.AddFunc("0 1 * * *", func() {
			err := CheckStatus()
			if err != nil {
				logger.Errorf("Failed to add cron job CheckStatus: %v\n", err)
			}
		})
		if err != nil {
			logger.Errorf("Failed to add cron job CheckStatus: %v\n", err)
			return
		}
		// 启动cron调度器
		c.Start()
	}()

	go func() {
		c := cron.New()
		// 添加一个定时任务，每个月15号执行
		_, err := c.AddFunc("0 2 15 * *", func() {
			UpdateAccessURL(nil)
		})
		if err != nil {
			logger.Errorf("Failed to add cron job UpdateAccessURL: %v\n", err)
			return
		}
		// 启动cron调度器
		c.Start()
	}()
}
